문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 C(프로그래밍 언어) (문단 편집) === 다른 프로그래밍 언어에 미친 영향 === * {...}을 이용한 블럭 (ALGOL/PASCAL 스타일의 begin … end 보다 간결하다.[* [[베릴로그]] HDL에서도 블럭을 이렇게 묶는다.]) * '대입'을 뜻하는 연산자를 '='로, '동일함'을 뜻하는 연산 기호를 '[[==]]'로 사용한다. 농담 좀 섞어서, '''초심자의 C언어 컴파일 오류의 90%'''는 여기서 나온다.[* 때문에 대부분 언어에서는 if에 bool 값이 아닌 int 값 등이 들어오면 에러를 내며, 일부 언어에서는 if 같이 비교 연산이 필요한 곳에서 대입 연산을 쓰면 컴파일 에러를 낸다.] * '다르다'를 뜻하는 연산 기호를 !=로 사용한다. * '또는'과 '그리고'를 ||와 &&로 사용한다. * +=, -=, *=, /=등의 직관적인 복합 연산자를 지원한다. * ++ 와 \-\-\ 라는 단항 연산자를 사용한다. **와 //는[* 1을 곱하거나 나눠서 달라지는 게 없다.. 만약 2를 곱하고 나누고 싶다면 시프트 연산을 사용하면 된다.] 다른 뜻을 가지고 있다. **은 이중 포인터이고, //은 주석이다. * 그 외에 if, for, while 등 많은 예약어의 사용 방식. 어떤 의미에서는 '''프로그래밍 언어의 [[라틴어]][* [[라틴어]]는 지금의 [[프랑스어]], [[이탈리아어]], [[스페인어]], [[포르투갈어]], [[루마니아어]]의 기원이자 [[영어]], [[네덜란드어]], [[독일어]]에 지대한 영향을 끼친 언어이다. C언어도 후에 나온 프로그래밍 언어의 뼈대가 되는 문법을 만드는 데 지대한 영향을 끼친 것이다.]/[[한자]]'''라고 할 수도 있을지도 모른다. 현재 많은 주요 언어에서 { }를 이용한 블럭 표기나 C언어에서 쓰이는 표현식(==, ||, &&), 예약어(if, while) 등을 채택해서 사용하고 있다. 따라서 다른 언어를 배울 때 C언어를 먼저 배웠다면 친숙하게 느껴질 것이다.[* [[Python]]과 그에 영향을 받은 언어들은 이런 영향에서 약간 자유롭다. 이런 언어들은 C언어와 중괄호가 아닌 들여쓰기로 블럭을 구분하는 특징이 있다] 추후 [[C++]]로 발전됐으며, C++에서는 OOP 기능을 지원한다. 다만, C언어로 OOP를 구현할 수 없는 것은 아닌데, 객체 지향은 개념일 뿐이며 C언어로도 그 개념을 구현할 수 있다. 일례로, 당장 C 표준의 일부인 파일 I/O는 객체 지향[* fopen() 등의 결과로 반환되는 FILE 포인터를 파일 객체에 대한 포인터로 보면 이해가 쉽다.]이며, Win32 API나 [[Linux|리눅스]]의 VFS(가상 파일 시스템)도 이처럼 '객체지향적'으로 코딩되어 있다. 다만, 언어 차원에서 지원이 없기 때문에 군더더기가 늘어날 수 있다는 점은 감안해야 한다. [[Java]]나 [[C\#]], [[Objective-C]] 등 여러 언어들의 모태가 된다. 때문에 C언어를 기초로 만들어진 언어들을 흔히 C-like Language[* C언어족 언어, C언어계 언어, [[계통분류학|C과 언어, C목 언어]] 등으로 번역할 수 있다.]라고 부른다. 그런 이유로 C언어를 제대로 익히고 나면 C-like 언어들은 쉽고 빠르게 익힐 수 있다. 단, 위에서 이미 언급했지만 C언어 자체는 엄청나게 어렵다. 그 대신 C언어나 C언어를 모태로 한 언어를 공부하면 자연스럽게 컴퓨터와 프로그램의 작동 방식에 대한 기초 지식을 습득할 수 있어 다른 언어나 프로그래밍 관련 스터디를 할 때 도움이 된다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기